#include <typescommon.h>
#include <base64.h>

#define BASE64_CHECK_SIZE (1024 * 1024)
int main()
{
    static uint8_t tmporg[BASE64_CHECK_SIZE];
    static uint8_t tmpenc[BASE64_CHECK_SIZE * 2];
    srand(time(NULL));
    int tmpflag = 0;
    for(int i = (sizeof(tmporg) < 1000) ? (0) : (sizeof(tmporg) - 1000); i < sizeof(tmporg); i++)
    {
        for(int j = 0; j < i; j++)
        {
            tmporg[j] = rand();
        }
        uint32_t tmplen = base64Enc(tmporg, i, tmpenc, sizeof(tmpenc));
        // logdebug("enc size=%d", tmplen);
        tmplen = base64Dec(tmpenc, tmplen, tmpenc, sizeof(tmpenc));
        // logdebug("dec size=%d", tmplen);
        if(tmplen != i)
        {
            logerror("len err:%d, %d", i, tmplen);
            break;
        }
        for(int j = 0; j < i; j++)
        {
            if(tmporg[j] != tmpenc[j])
            {
                logerror("diff:%d, %d", i, j);
                tmpflag = 1;
                break;
            }
        }
        if(tmpflag == 1)
        {
            break;
        }
        logdebug("size %d, ok", i);
    }
    logdebug("finish!");
    return 0;
}
